package com.dingding.service.account.facade.tailwind;

import javax.annotation.Resource;

import org.springframework.stereotype.Component;

import com.dingding.common.core.base.dto.ResponseEntity;
import com.dingding.facade.account.common.dto.tailwind.ReqAddDepositAccount;
import com.dingding.facade.account.common.dto.tailwind.ReqDeleteDepositAccount;
import com.dingding.facade.account.common.dto.tailwind.ReqGetDepositAccount;
import com.dingding.facade.account.common.dto.tailwind.ReqUAStatus;
import com.dingding.facade.account.common.dto.tailwind.ReqWithdrawals;
import com.dingding.facade.account.facade.tailwind.IDepositAccountFacade;
import com.dingding.service.account.core.tailwind.service.IDepositAccountService;

/**
 * 
 * @ClassName: DepositAccountFacadeImpl 
 * @Description: 提现账户服务接口实现类
 * @author YHQ
 * @date 2016年12月21日 下午3:49:40
 * @since V2.5.8
 * 
 */
@Component("depositAccountFacade")
public class DepositAccountFacadeImpl implements IDepositAccountFacade{

	@Resource(name = "depositAccountService")
	private IDepositAccountService depositAccountService;
	
	/**
	 * 
	 * @Title: getSpecialUserAuthenticationStatus 
	 * @Description: 获取用户提现认证状态
	 * @param reqSUAStatus 获取用户认证状态请求Bean
	 * @author YHQ 
	 * @since V2.6.3
	 * @return ResSUAStatus    返回类型
	 * 
	 */
	@Override
	public ResponseEntity<Object> getUserAuthenticationStatus(ReqUAStatus reqUAStatus) {
		
		return depositAccountService.getUserAuthenticationStatus(reqUAStatus);
	}
	
	/**
	 * 
	 * @Title: addDepositAccount 
	 * @Description: 根据用户id添加用户提现账户
	 * @param reqAddDepositAccount 客户端请求Bean
	 * @author YHQ 
	 * @since V2.6.3
	 * @return ResponseEntity<Object>    返回类型
	 * 
	 */
	@Override
	public ResponseEntity<Object> addDepositAccount(ReqAddDepositAccount reqAddDepositAccount) {
		
		return depositAccountService.addDepositAccount(reqAddDepositAccount);
	}

	/**
	 * 
	 * @Title: deleteDepositAccount 
	 * @Description: 根据用户id删除提现账户
	 * @param reqDeleteDepositAccount 客户端请求Bean
	 * @author YHQ 
	 * @since V2.6.3
	 * @return boolean    返回类型
	 * 
	 */
	@Override
	public ResponseEntity<Object> deleteDepositAccount(ReqDeleteDepositAccount reqDeleteDepositAccount) {
		
		return depositAccountService.deleteDepositAccount(reqDeleteDepositAccount);
	}

	/**
	 * 
	 * @Title: getDepositAccountList 
	 * @Description: 根据用户id获取提现账户列表
	 * @param reqGetDepositAccount 客户端请求Bean
	 * @author YHQ 
	 * @since V2.6.3
	 * @return ResponseEntity<Object>    返回类型
	 * 
	 */
	@Override
	public ResponseEntity<Object> getDepositAccountList(ReqGetDepositAccount reqGetDepositAccount) {
		
		return depositAccountService.getDepositAccountList(reqGetDepositAccount);
	}

	/**
	 * 
	 * @Title: withdrawals 
	 * @Description: 用户提现(乘客端)
	 * @param reqWithdrawals 用户提现(乘客端)客户端请求Bean
	 * @author YHQ 
	 * @since V2.6.3
	 * @return ResponseEntity<Object>    返回类型
	 * 
	 */
	@Override
	public ResponseEntity<Object> withdrawals(ReqWithdrawals reqWithdrawals) {
		
		return depositAccountService.withdrawals(reqWithdrawals);
	}

}
